///*
// * Copyright 2002-2004 the original author or authors.
// *
// * Licensed under the Apache License, Version 2.0 (the "License"); you may not
// * use this file except in compliance with the License. You may obtain a copy of
// * the License at
// *
// * http://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// * License for the specific language governing permissions and limitations under
// * the License.
// */
//package pl.edu.pw.perg.compinfodb.ui;
//
//import java.text.NumberFormat;
//import java.util.List;
//import java.util.Set;
//
//import javax.swing.JComponent;
//import javax.swing.JFormattedTextField;
//import javax.swing.JLabel;
//
//import org.springframework.binding.form.ValidatingFormModel;
//import org.springframework.binding.validation.ValidationListener;
//import org.springframework.binding.value.ValueModel;
//import org.springframework.richclient.core.Guarded;
//import org.springframework.richclient.dialog.Messagable;
//import org.springframework.richclient.form.Form;
//import org.springframework.richclient.form.ValidationResultsReporter;
//import org.springframework.richclient.layout.TableLayoutBuilder;
//
//import pl.edu.pw.perg.compinfodb.entities.field.Field;
//import pl.edu.pw.perg.compinfodb.entities.field.NumericField;
//import pl.edu.pw.perg.compinfodb.entities.field.TextField;
//import pl.edu.pw.perg.compinfodb.model.ElementFormModel;
//
//public class ElementForm implements Form {
//
//    public static final String ELEMENT_FORM_PAGE = "elementProperties";
//
//    private NumberFormat numberFormat = NumberFormat.getInstance();
//
//    private ElementFormModel model;
//
//    private String id;
//
//    public ElementForm(ElementFormModel formModel, String id) {
//        model = formModel;
//        this.id = id;
//    }
//
//    protected JComponent createFormControl() {
//
//    	TableLayoutBuilder table = new TableLayoutBuilder();
//    	Set<Field> fields = (model.getBackingElement())
//        	.getElementType().getFields();
//
//    	for (Field field : fields) {
//    		if(field.getFieldClass().equals(TextField.class)){
//    			JFormattedTextField tf = new JFormattedTextField();
//    			tf.setColumns(30);
//    			tf.setName(field.getId().toString());
//    			tf.addPropertyChangeListener("value", model);
//    			table.row().
//    			cell(new JLabel(field.getFieldName()),
//    					"colSpec=left:pref colGrId=labels")
//    			.labelGapCol().cell(tf)
//    			.unrelatedGapRow();
//    		}
//    		else if(field.getFieldClass().equals(NumericField.class)){
//    			JFormattedTextField tf = new JFormattedTextField(numberFormat);
//    			tf.setColumns(30);
//    			tf.setName(field.getId().toString());
//    			table.row().
//    			cell(new JLabel(field.getFieldName()),
//    					"colSpec=left:pref colGrId=labels")
//    			.labelGapCol().cell(tf)
//    			.unrelatedGapRow();
//    		}
//
//		}
//        return table.getPanel();
//    }
//
//    public boolean requestFocusInWindow() {
//        return true;
//    }
//
//	public void addChildForm(Form form) {
//
//	}
//
//	public void addGuarded(Guarded guarded) {
//
//	}
//
//	public void addGuarded(Guarded guarded, int mask) {
//
//	}
//
//	public void addValidationListener(ValidationListener listener) {
//
//	}
//
//	public void addValidationResultsReporter(ValidationResultsReporter validationResultsReporter) {
//
//	}
//
//	public void commit() {
//
//	}
//
//	public ValidatingFormModel getFormModel() {
//		return null;
//	}
//
//	public Object getFormObject() {
//		return model.getBackingElement();
//	}
//
//	public String getId() {
//		return id;
//	}
//
//	public List getValidationResultsReporters() {
//		return null;
//	}
//
//	public Object getValue(String formProperty) {
//		return null;
//	}
//
//	public ValueModel getValueModel(String formProperty) {
//		return null;
//	}
//
//	public boolean hasErrors() {
//		return false;
//	}
//
//	public ValidationResultsReporter newSingleLineResultsReporter(Messagable messageAreaPane) {
//		return null;
//	}
//
//	public void removeChildForm(Form form) {
//
//	}
//
//	public void removeGuarded(Guarded guarded) {
//
//	}
//
//	public void removeValidationListener(ValidationListener listener) {
//
//	}
//
//	public void removeValidationResultsReporter(ValidationResultsReporter validationResultsReporter) {
//
//	}
//
//	public void revert() {
//
//	}
//
//	public void setFormObject(Object formObject) {
//
//	}
//
//	public JComponent getControl() {
//		return createFormControl();
//	}
//
//}